A fundamental construction of an FPGA is composed of a configurable logic block (CLB) to realize optional logic information, a connection block (CB) to input and output between the CLB and wiring, and a switch block (SB) to switch over the connection of the wiring. In each of the blocks, the logic information and the wiring connection information are changed by values stored in configuration memories.
Recently, several nonvolatile resistive-change memories are proposed as the configuration memory. As these are formed in a wiring layer, it is possible to reduce a silicon area compared with an SRAM. Several kinds of the resistive-change memories are proposed, a bipolar type memory to program conduction and non-conduction in a direction to apply a voltage has a merit to control easily compared with a unipolar type in that it is not necessary to control the value of the voltage more finely.
When two memory elements are arranged in series, it is necessary to insert a selecting transistor in series with the two memory elements so as to prevent the current from flowing into another memory cell.
In the method to use the bipolar type memory as the configuration memory of the FPGA, there is a problem that to provide four power source voltages is necessary. In addition, as the two memories are directly connected between the wirings, there is another problem that current happens to flow into the device which is not programmed and then false writing happens.
In a circuit constitution inserted selecting transistors in series with the two memory elements such as a magnetic tunnel junction element, for example, there is a problem that a magneto resistance ratio of conduction and non-conduction of the element is small and it is difficult to use the circuit constitution directly for the configuration memory of the FPGA. In addition, as a memory array is supposed and a plurality of the memories are connected to one bit line, there is a problem that current happens to flow into the memory element of another cell and then the operation becomes unstable.